পরিবর্তিত ডকুমেন্টে Accept এবং Reject করা

Java Technologies - অ্যাপাচি পিওআই (ওয়ার্ড) Track Changes এবং Revision Management |
127
127

Apache POI-এর মাধ্যমে আপনি Microsoft Word ডকুমেন্টে Track Changes (পরিবর্তন ট্র্যাকিং) পরিচালনা করতে পারেন। পরিবর্তন ট্র্যাকিং ব্যবহৃত হয় যখন ডকুমেন্টে কিছু সংশোধন বা পরিবর্তন করা হয় এবং আপনি সেগুলিকে Accept (গ্রহণ) বা Reject (অস্বীকার) করতে চান। এই প্রক্রিয়া সাধারণত ডকুমেন্টের রিভিউ প্রক্রিয়ার অংশ হিসেবে ব্যবহৃত হয়, যেখানে ব্যবহারকারীরা মন্তব্য করে এবং সংশোধন সুপারিশ করতে পারেন।

Apache POI লাইব্রেরি সরাসরি পরিবর্তন ট্র্যাকিংয়ের কার্যকারিতা (যেমন, Accept এবং Reject করা) নিয়ে কাজ করতে সক্ষম নয়, কারণ এটি মূলত XWPF API দিয়ে Word ডকুমেন্টের কনটেন্টে পরিবর্তন বা সংশোধন করা সমর্থন করে। তবে, POI লাইব্রেরির মাধ্যমে Track Changes এবং সংশোধিত কনটেন্ট দেখতে এবং প্রোগ্রাম্যাটিকভাবে কার্যক্রম পরিচালনা করতে কিছু workaround বা টেকনিক্যাল কৌশল ব্যবহার করা সম্ভব।

নিচে কিছু উদাহরণ দেওয়া হয়েছে যেখানে Track Changes ব্যবহৃত ডকুমেন্টের মধ্যে Accept এবং Reject করার কৌশল নিয়ে আলোচনা করা হয়েছে:


১. Word ডকুমেন্টে Track Changes সক্রিয় করা

Track Changes বা পরিবর্তন ট্র্যাকিং সক্রিয় করার জন্য, প্রথমে আপনাকে Word ডকুমেন্টের Track Changes ফিচারটি চালু করতে হবে। এটি সাধারণত Word এ রিভিউ ট্যাবের মাধ্যমে করা হয়, তবে POI API দিয়ে সরাসরি এই কাজটি করা সম্ভব নয়। তবে, আপনি যদি আগে থেকেই ট্র্যাকড ডকুমেন্ট পেয়ে থাকেন, তখন আপনি তার পরিবর্তনগুলো পড়তে বা সমন্বয় করতে পারবেন।


২. Word ডকুমেন্টে Track Changes পড়া

Apache POI-এ Track Changes পড়ার জন্য, XML ফরম্যাটে থাকা Word ডকুমেন্টের পরিবর্তনগুলোর উপর কাজ করতে হয়। নিচে একটি উদাহরণ দেয়া হল যেখানে Track Changes থেকে সংশোধিত অংশ বের করা হয়েছে।

import org.apache.poi.xwpf.usermodel.*;
import org.apache.xmlbeans.XmlCursor;
import java.io.FileInputStream;
import java.io.IOException;

public class ReadTrackChangesExample {
    public static void main(String[] args) throws IOException {
        // ডকুমেন্ট লোড করা
        XWPFDocument document = new XWPFDocument(new FileInputStream("track_changes_example.docx"));
        
        // ডকুমেন্টে থাকা সকল ট্র্যাকড পরিবর্তন (Track Changes) পড়া
        XmlCursor cursor = document.getDocument().newCursor();
        cursor.selectPath("./*");
        while (cursor.toNextSelection()) {
            if (cursor.getName().getLocalPart().equals("w:ins")) { // Inserted text (Addition)
                System.out.println("Inserted Text: " + cursor.getTextValue());
            } else if (cursor.getName().getLocalPart().equals("w:del")) { // Deleted text
                System.out.println("Deleted Text: " + cursor.getTextValue());
            }
        }
    }
}

এই কোডের মাধ্যমে, আপনি ডকুমেন্টে Inserted (নতুন টেক্সট) এবং Deleted (মুছে ফেলা টেক্সট) অংশগুলি পড়তে পারবেন।


৩. Changes (পরিবর্তন) গ্রহণ করা (Accept)

Changes বা সংশোধনগুলো Accept করতে POI লাইব্রেরি সরাসরি কাজ করে না, কারণ এটি মূলত ডকুমেন্টের কনটেন্ট ম্যানিপুলেশন করে, কিন্তু Track Changes-এর মধ্যে কার্যকরভাবে Accept বা Reject পরিচালনা করতে POI-এর অভ্যন্তরীণ ফিচার প্রয়োজন হয় যা বর্তমানে POI-এর মধ্যে নেই।

তবে, আপনি পরিবর্তনগুলোকে কাস্টমভাবে Accept করার জন্য নতুন কনটেন্ট ম্যানিপুলেশন করতে পারেন, যেমন একটি inserted text (নতুন টেক্সট) গ্রহণ করা এবং মুছে ফেলা অংশ সরিয়ে ফেলা। নিচে একটি উদাহরণ দেওয়া হয়েছে যেখানে Inserted Text গ্রহণ করা হয়েছে:

import org.apache.poi.xwpf.usermodel.*;
import org.apache.xmlbeans.XmlCursor;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class AcceptChangesExample {
    public static void main(String[] args) throws IOException {
        // ডকুমেন্ট লোড করা
        XWPFDocument document = new XWPFDocument(new FileInputStream("track_changes_example.docx"));
        
        // ডকুমেন্টে ট্র্যাকড পরিবর্তনগুলির ওপর কাজ করা
        XmlCursor cursor = document.getDocument().newCursor();
        cursor.selectPath("./*");
        
        while (cursor.toNextSelection()) {
            // Insertion (Inserted text) গ্রহণ করা
            if (cursor.getName().getLocalPart().equals("w:ins")) {
                String insertedText = cursor.getTextValue();
                System.out.println("Accepted Text: " + insertedText);
                
                // নতুন টেক্সট যোগ করা (Accepted Change)
                XWPFParagraph para = document.createParagraph();
                XWPFRun run = para.createRun();
                run.setText(insertedText);  // Accept the inserted text
            }
        }
        
        // পরিবর্তিত ডকুমেন্ট সেভ করা
        FileOutputStream out = new FileOutputStream("accepted_changes.docx");
        document.write(out);
        out.close();
    }
}

এখানে, Inserted Text (নতুন টেক্সট) গ্রহণ করা হয়েছে এবং ডকুমেন্টে নতুন টেক্সট যোগ করা হয়েছে।


৪. Changes (পরিবর্তন) প্রত্যাখ্যান করা (Reject)

Reject বা বাতিল করার জন্য, আপনি deleted text বা inserted text-কে প্রোগ্রাম্যাটিকভাবে মুছে ফেলতে পারেন। এই কাজটি করতে, Track Changes-এর মধ্যে deleted text (মুছে ফেলা টেক্সট) থেকে উপযুক্ত অংশগুলো সরিয়ে দিতে হবে।

import org.apache.poi.xwpf.usermodel.*;
import org.apache.xmlbeans.XmlCursor;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class RejectChangesExample {
    public static void main(String[] args) throws IOException {
        // ডকুমেন্ট লোড করা
        XWPFDocument document = new XWPFDocument(new FileInputStream("track_changes_example.docx"));
        
        // ডকুমেন্টে ট্র্যাকড পরিবর্তনগুলির ওপর কাজ করা
        XmlCursor cursor = document.getDocument().newCursor();
        cursor.selectPath("./*");

        while (cursor.toNextSelection()) {
            // Deleted text (বাতিল করা টেক্সট) সরিয়ে ফেলা
            if (cursor.getName().getLocalPart().equals("w:del")) {
                System.out.println("Rejected Text: " + cursor.getTextValue());
                
                // Deleted text বাদ দেওয়া (Reject the change)
                // এখানে আপনি কনটেন্ট মুছে ফেলতে পারেন বা কিছু পরিবর্তন করতে পারেন
            }
        }
        
        // পরিবর্তিত ডকুমেন্ট সেভ করা
        FileOutputStream out = new FileOutputStream("rejected_changes.docx");
        document.write(out);
        out.close();
    }
}

এখানে, Deleted Text (মুছে ফেলা টেক্সট) Reject করা হয়েছে এবং সেই অংশ ডকুমেন্ট থেকে সরিয়ে ফেলা হয়েছে।


৫. সারাংশ

Apache POI সরাসরি Track Changes থেকে Accept এবং Reject করার জন্য পূর্ণাঙ্গ সমর্থন প্রদান না করলেও, Inserted Text এবং Deleted Text-এর ওপর কার্যক্রম পরিচালনা করা সম্ভব। আপনি Track Changes পদ্ধতিতে তৈরি ডকুমেন্টে মন্তব্যের মতো সংশোধনগুলো কাস্টমভাবে Accept বা Reject করতে পারেন, যদিও এটি POI-এর সরাসরি সমর্থন নয়।

এছাড়া, Track Changes-এর ডেটা XML স্ট্রাকচার হিসেবে থাকে, যাকে আপনি XmlCursor ব্যবহার করে প্রসেস করতে পারেন এবং সংশোধনগুলো হাতে সমন্বয় করতে পারেন।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion